]> shimmer.witbreuk.eu Git - UltimateKEYS.git/blobdiff - UltimateKEYS SW - 2020-06-28.ahk
Add files via upload
[UltimateKEYS.git] / UltimateKEYS SW - 2020-06-28.ahk
diff --git a/UltimateKEYS SW - 2020-06-28.ahk b/UltimateKEYS SW - 2020-06-28.ahk
new file mode 100644 (file)
index 0000000..017eaee
--- /dev/null
@@ -0,0 +1,1353 @@
+; UltimateKEYS SW - 2020-06-28.ahk\r
+\r
+; Created by :  Pieter Degroote\r
+\r
+; License :  GNU General Public License Version 3\r
+\r
+; Website :  https://github.com/pieter-degroote/UltimateKEYS\r
+\r
+\r
+; Requirements :\r
+\r
+; Keyboard layout (on Windows OS) :  US QWERTY\r
+\r
+; AutoHotkey v1.1 (https://www.autohotkey.com/)\r
+\r
+\r
+\r
+ListLines Off  ; omits recently executed lines from history (for privacy and security)\r
+#KeyHistory 0  ; disables the key history (for privacy and security)\r
+\r
+\r
+; Dead Key :  Circumflex Accent\r
+\r
+dkCircumflex := ComObjCreate("Scripting.Dictionary")\r
+dkCircumflex.item["a"] := "{u+00e2}"  ; (â) a with circumflex\r
+dkCircumflex.item["A"] := "{u+00c2}"  ; (Â) A with circumflex\r
+dkCircumflex.item["c"] := "{u+0109}"  ; (ĉ) c with circumflex\r
+dkCircumflex.item["C"] := "{u+0108}"  ; (Ĉ) C with circumflex\r
+dkCircumflex.item["e"] := "{u+00ea}"  ; (ê) e with circumflex\r
+dkCircumflex.item["E"] := "{u+00ca}"  ; (Ê) E with circumflex\r
+dkCircumflex.item["g"] := "{u+011d}"  ; (ĝ) g with circumflex\r
+dkCircumflex.item["G"] := "{u+011c}"  ; (Ĝ) G with circumflex\r
+dkCircumflex.item["h"] := "{u+0125}"  ; (ĥ) h with circumflex\r
+dkCircumflex.item["H"] := "{u+0124}"  ; (Ĥ) H with circumflex\r
+dkCircumflex.item["i"] := "{u+00ee}"  ; (î) i with circumflex\r
+dkCircumflex.item["I"] := "{u+00ce}"  ; (Î) I with circumflex\r
+dkCircumflex.item["j"] := "{u+0135}"  ; (ĵ) j with circumflex\r
+dkCircumflex.item["J"] := "{u+0134}"  ; (Ĵ) J with circumflex\r
+dkCircumflex.item["o"] := "{u+00f4}"  ; (ô) o with circumflex\r
+dkCircumflex.item["O"] := "{u+00d4}"  ; (Ô) O with circumflex\r
+dkCircumflex.item["s"] := "{u+015d}"  ; (ŝ) s with circumflex\r
+dkCircumflex.item["S"] := "{u+015c}"  ; (Ŝ) S with circumflex\r
+dkCircumflex.item["u"] := "{u+00fb}"  ; (û) u with circumflex\r
+dkCircumflex.item["U"] := "{u+00db}"  ; (Û) U with circumflex\r
+dkCircumflex.item["w"] := "{u+0175}"  ; (ŵ) w with circumflex\r
+dkCircumflex.item["W"] := "{u+0174}"  ; (Ŵ) W with circumflex\r
+dkCircumflex.item["y"] := "{u+0177}"  ; (ŷ) y with circumflex\r
+dkCircumflex.item["Y"] := "{u+0176}"  ; (Ŷ) Y with circumflex\r
+dkCircumflex.item["z"] := "{u+1e91}"  ; (ẑ) z with circumflex\r
+dkCircumflex.item["Z"] := "{u+1e90}"  ; (Ẑ) Z with circumflex\r
+\r
+; Smart error-tolerant optimization for circumflex in French (begin)\r
+\r
+dkCircumflex.item[chr(0x00e4)] := "{u+00e2}"  ; (ä -> â) a with circumflex\r
+dkCircumflex.item[chr(0x00c4)] := "{u+00c2}"  ; (Ä -> Â) A with circumflex\r
+dkCircumflex.item[chr(0x00eb)] := "{u+00ea}"  ; (ë -> ê) e with circumflex\r
+dkCircumflex.item[chr(0x00cb)] := "{u+00ca}"  ; (Ë -> Ê) E with circumflex\r
+dkCircumflex.item[chr(0x00ef)] := "{u+00ee}"  ; (ï -> î) i with circumflex\r
+dkCircumflex.item[chr(0x00cf)] := "{u+00ce}"  ; (Ï -> Î) I with circumflex\r
+dkCircumflex.item[chr(0x00f6)] := "{u+00f4}"  ; (ö -> ô) o with circumflex\r
+dkCircumflex.item[chr(0x00d6)] := "{u+00d4}"  ; (Ö -> Ô) O with circumflex\r
+dkCircumflex.item[chr(0x00fc)] := "{u+00fb}"  ; (ü -> û) u with circumflex\r
+dkCircumflex.item[chr(0x00dc)] := "{u+00db}"  ; (Ü -> Û) U with circumflex\r
+\r
+; Smart error-tolerant optimization for circumflex in French (end)\r
+\r
+dkCircumflex.item["n"] := "{u+20a6}"  ; (₦) Nigerian naira\r
+dkCircumflex.item["N"] := "{u+20a6}"  ; (₦) Nigerian naira\r
+dkCircumflex.item["^"] := "{^}"       ;     circumflex accent\r
+dkCircumflex.item[" "] := "{^}"       ;     circumflex accent\r
+\r
+\r
+; Dead Key :  Caron\r
+\r
+dkCaron := ComObjCreate("Scripting.Dictionary")\r
+dkCaron.item["a"] := "{u+01ce}"  ; (ǎ) a with caron\r
+dkCaron.item["A"] := "{u+01cd}"  ; (Ǎ) A with caron\r
+dkCaron.item["c"] := "{u+010d}"  ; (č) c with caron\r
+dkCaron.item["C"] := "{u+010c}"  ; (Č) C with caron\r
+dkCaron.item["d"] := "{u+010f}"  ; (ď) d with caron\r
+dkCaron.item["D"] := "{u+010e}"  ; (Ď) D with caron\r
+dkCaron.item["e"] := "{u+011b}"  ; (ě) e with caron\r
+dkCaron.item["E"] := "{u+011a}"  ; (Ě) E with caron\r
+dkCaron.item["g"] := "{u+01e7}"  ; (ǧ) g with caron\r
+dkCaron.item["G"] := "{u+01e6}"  ; (Ǧ) G with caron\r
+dkCaron.item["h"] := "{u+021f}"  ; (ȟ) h with caron\r
+dkCaron.item["H"] := "{u+021e}"  ; (Ȟ) H with caron\r
+dkCaron.item["i"] := "{u+01d0}"  ; (ǐ) i with caron\r
+dkCaron.item["I"] := "{u+01cf}"  ; (Ǐ) I with caron\r
+dkCaron.item["j"] := "{u+01f0}"  ; (ǰ) j with caron\r
+dkCaron.item["k"] := "{u+01e9}"  ; (ǩ) k with caron\r
+dkCaron.item["K"] := "{u+01e8}"  ; (Ǩ) K with caron\r
+dkCaron.item["l"] := "{u+013e}"  ; (ľ) l with caron\r
+dkCaron.item["L"] := "{u+013d}"  ; (Ľ) L with caron\r
+dkCaron.item["n"] := "{u+0148}"  ; (ň) n with caron\r
+dkCaron.item["N"] := "{u+0147}"  ; (Ň) N with caron\r
+dkCaron.item["o"] := "{u+01d2}"  ; (ǒ) o with caron\r
+dkCaron.item["O"] := "{u+01d1}"  ; (Ǒ) O with caron\r
+dkCaron.item["r"] := "{u+0159}"  ; (ř) r with caron\r
+dkCaron.item["R"] := "{u+0158}"  ; (Ř) R with caron\r
+dkCaron.item["s"] := "{u+0161}"  ; (š) s with caron\r
+dkCaron.item["S"] := "{u+0160}"  ; (Š) S with caron\r
+dkCaron.item["t"] := "{u+0165}"  ; (ť) t with caron\r
+dkCaron.item["T"] := "{u+0164}"  ; (Ť) T with caron\r
+dkCaron.item["u"] := "{u+01d4}"  ; (ǔ) u with caron\r
+dkCaron.item["U"] := "{u+01d3}"  ; (Ǔ) U with caron\r
+dkCaron.item["v"] := "{u+01da}"  ; (ǚ) u with diaeresis and caron\r
+dkCaron.item["V"] := "{u+01d9}"  ; (Ǚ) U with diaeresis and caron\r
+dkCaron.item["z"] := "{u+017e}"  ; (ž) z with caron\r
+dkCaron.item["Z"] := "{u+017d}"  ; (Ž) Z with caron\r
+dkCaron.item["#"] := "{u+01ef}"  ; (ǯ) small letter ezh with caron\r
+dkCaron.item["3"] := "{u+01ee}"  ; (Ǯ) capital letter ezh with caron\r
+dkCaron.item[" "] := "{u+02c7}"  ; (ˇ) caron\r
+\r
+\r
+; Dead Key :  Ring/Dot Above\r
+\r
+dkRingDotAbove := ComObjCreate("Scripting.Dictionary")\r
+dkRingDotAbove.item["a"] := "{u+00e5}"          ; (å) a with ring above\r
+dkRingDotAbove.item["A"] := "{u+00c5}"          ; (Å) A with ring above\r
+dkRingDotAbove.item[chr(0x00e4)] := "{u+0227}"  ; (ä -> ȧ) a with dot above\r
+dkRingDotAbove.item[chr(0x00c4)] := "{u+0226}"  ; (Ä -> Ȧ) A with dot above\r
+dkRingDotAbove.item["b"] := "{u+1e03}"          ; (ḃ) b with dot above\r
+dkRingDotAbove.item["B"] := "{u+1e02}"          ; (Ḃ) B with dot above\r
+dkRingDotAbove.item["c"] := "{u+010b}"          ; (ċ) c with dot above\r
+dkRingDotAbove.item["C"] := "{u+010a}"          ; (Ċ) C with dot above\r
+dkRingDotAbove.item["d"] := "{u+1e0b}"          ; (ḋ) d with dot above\r
+dkRingDotAbove.item["D"] := "{u+1e0a}"          ; (Ḋ) D with dot above\r
+dkRingDotAbove.item["e"] := "{u+0117}"          ; (ė) e with dot above\r
+dkRingDotAbove.item["E"] := "{u+0116}"          ; (Ė) E with dot above\r
+dkRingDotAbove.item["f"] := "{u+1e1f}"          ; (ḟ) f with dot above\r
+dkRingDotAbove.item["F"] := "{u+1e1e}"          ; (Ḟ) F with dot above\r
+dkRingDotAbove.item["g"] := "{u+0121}"          ; (ġ) g with dot above\r
+dkRingDotAbove.item["G"] := "{u+0120}"          ; (Ġ) G with dot above\r
+dkRingDotAbove.item["h"] := "{u+1e23}"          ; (ḣ) h with dot above\r
+dkRingDotAbove.item["H"] := "{u+1e22}"          ; (Ḣ) H with dot above\r
+dkRingDotAbove.item["i"] := "{u+0131}"          ; (ı) dotless i (Turkish, Azerbaijani)\r
+dkRingDotAbove.item["I"] := "{u+0130}"          ; (İ) I with dot above (Turkish, Azerbaijani)\r
+dkRingDotAbove.item["j"] := "{u+0237}"          ; (ȷ) dotless j\r
+dkRingDotAbove.item["l"] := "{u+0140}"          ; (ŀ) l with middle dot\r
+dkRingDotAbove.item["L"] := "{u+013f}"          ; (Ŀ) L with middle dot\r
+dkRingDotAbove.item["m"] := "{u+1e41}"          ; (ṁ) m with dot above\r
+dkRingDotAbove.item["M"] := "{u+1e40}"          ; (Ṁ) M with dot above\r
+dkRingDotAbove.item["n"] := "{u+1e45}"          ; (ṅ) n with dot above\r
+dkRingDotAbove.item["N"] := "{u+1e44}"          ; (Ṅ) N with dot above\r
+dkRingDotAbove.item["o"] := "{u+022f}"          ; (ȯ) o with dot above\r
+dkRingDotAbove.item["O"] := "{u+022e}"          ; (Ȯ) O with dot above\r
+dkRingDotAbove.item["p"] := "{u+1e57}"          ; (ṗ) p with dot above\r
+dkRingDotAbove.item["P"] := "{u+1e56}"          ; (Ṗ) P with dot above\r
+dkRingDotAbove.item["r"] := "{u+1e59}"          ; (ṙ) r with dot above\r
+dkRingDotAbove.item["R"] := "{u+1e58}"          ; (Ṙ) R with dot above\r
+dkRingDotAbove.item["s"] := "{u+1e61}"          ; (ṡ) s with dot above\r
+dkRingDotAbove.item["S"] := "{u+1e60}"          ; (Ṡ) S with dot above\r
+dkRingDotAbove.item["t"] := "{u+1e6b}"          ; (ṫ) t with dot above\r
+dkRingDotAbove.item["T"] := "{u+1e6a}"          ; (Ṫ) T with dot above\r
+dkRingDotAbove.item["u"] := "{u+016f}"          ; (ů) u with ring above\r
+dkRingDotAbove.item["U"] := "{u+016e}"          ; (Ů) U with ring above\r
+dkRingDotAbove.item["w"] := "{u+1e87}"          ; (ẇ) w with dot above\r
+dkRingDotAbove.item["W"] := "{u+1e86}"          ; (Ẇ) W with dot above\r
+dkRingDotAbove.item[chr(0x00e5)] := "{u+1e98}"  ; (å -> ẘ) w with ring above\r
+dkRingDotAbove.item["x"] := "{u+1e8b}"          ; (ẋ) x with dot above\r
+dkRingDotAbove.item["X"] := "{u+1e8a}"          ; (Ẋ) X with dot above\r
+dkRingDotAbove.item["y"] := "{u+1e8f}"          ; (ẏ) y with dot above\r
+dkRingDotAbove.item["Y"] := "{u+1e8e}"          ; (Ẏ) Y with dot above\r
+dkRingDotAbove.item[chr(0x00ff)] := "{u+1e99}"  ; (ÿ -> ẙ) y with ring above\r
+dkRingDotAbove.item["z"] := "{u+017c}"          ; (ż) z with dot above\r
+dkRingDotAbove.item["Z"] := "{u+017b}"          ; (Ż) Z with dot above\r
+dkRingDotAbove.item[" "] := "{u+02d9}"          ; (˙) dot above\r
+\r
+\r
+; Dead Key :  Macron/Stroke\r
+\r
+dkMacronStroke := ComObjCreate("Scripting.Dictionary")\r
+dkMacronStroke.item["a"] := "{u+0101}"          ; (ā) a with macron\r
+dkMacronStroke.item["A"] := "{u+0100}"          ; (Ā) A with macron\r
+dkMacronStroke.item[chr(0x00e6)] := "{u+01e3}"  ; (æ -> ǣ) ae with macron\r
+dkMacronStroke.item[chr(0x00c6)] := "{u+01e2}"  ; (Æ -> Ǣ) AE with macron\r
+dkMacronStroke.item["b"] := "{u+0180}"          ; (ƀ) b with stroke\r
+dkMacronStroke.item["B"] := "{u+0243}"          ; (Ƀ) B with stroke\r
+dkMacronStroke.item["d"] := "{u+0111}"          ; (đ) d with stroke\r
+dkMacronStroke.item["D"] := "{u+0110}"          ; (Đ) D with stroke\r
+dkMacronStroke.item["e"] := "{u+0113}"          ; (ē) e with macron\r
+dkMacronStroke.item["E"] := "{u+0112}"          ; (Ē) E with macron\r
+dkMacronStroke.item["g"] := "{u+01e5}"          ; (ǥ) g with stroke (Skolt Sami)\r
+dkMacronStroke.item["G"] := "{u+01e4}"          ; (Ǥ) G with stroke (Skolt Sami)\r
+dkMacronStroke.item[chr(0x00e9)] := "{u+1e21}"  ; (é -> ḡ) g with macron\r
+dkMacronStroke.item[chr(0x00c9)] := "{u+1e20}"  ; (É -> Ḡ) G with macron\r
+dkMacronStroke.item["h"] := "{u+0127}"          ; (ħ) h with stroke (Maltese)\r
+dkMacronStroke.item["H"] := "{u+0126}"          ; (Ħ) H with stroke (Maltese)\r
+dkMacronStroke.item["i"] := "{u+012b}"          ; (ī) i with macron\r
+dkMacronStroke.item["I"] := "{u+012a}"          ; (Ī) I with macron\r
+dkMacronStroke.item[chr(0x00ef)] := "{u+0268}"  ; (ï -> ɨ) i with stroke\r
+dkMacronStroke.item[chr(0x00cf)] := "{u+0197}"  ; (Ï -> Ɨ) I with stroke\r
+dkMacronStroke.item["j"] := "{u+0249}"          ; (ɉ) j with stroke\r
+dkMacronStroke.item["J"] := "{u+0248}"          ; (Ɉ) J with stroke\r
+dkMacronStroke.item["l"] := "{u+0142}"          ; (ł) l with stroke\r
+dkMacronStroke.item["L"] := "{u+0141}"          ; (Ł) L with stroke\r
+dkMacronStroke.item[chr(0x00f8)] := "{u+1e3b}"  ; (ø -> ḻ) l with line below\r
+dkMacronStroke.item[chr(0x00d8)] := "{u+1e3a}"  ; (Ø -> Ḻ) L with line below\r
+dkMacronStroke.item["o"] := "{u+014d}"          ; (ō) o with macron\r
+dkMacronStroke.item["O"] := "{u+014c}"          ; (Ō) O with macron\r
+dkMacronStroke.item[chr(0x00f6)] := "{u+01ed}"  ; (ö -> ǭ) o with ogonek and macron\r
+dkMacronStroke.item[chr(0x00d6)] := "{u+01ec}"  ; (Ö -> Ǭ) O with ogonek and macron\r
+dkMacronStroke.item["p"] := "{u+1d7d}"          ; (ᵽ) p with stroke\r
+dkMacronStroke.item["P"] := "{u+2c63}"          ; (Ᵽ) P with stroke\r
+dkMacronStroke.item["r"] := "{u+024d}"          ; (ɍ) r with stroke\r
+dkMacronStroke.item["R"] := "{u+024c}"          ; (Ɍ) R with stroke\r
+dkMacronStroke.item["t"] := "{u+0167}"          ; (ŧ) t with stroke\r
+dkMacronStroke.item["T"] := "{u+0166}"          ; (Ŧ) T with stroke\r
+dkMacronStroke.item["u"] := "{u+016b}"          ; (ū) u with macron\r
+dkMacronStroke.item["U"] := "{u+016a}"          ; (Ū) U with macron\r
+dkMacronStroke.item[chr(0x00fc)] := "{u+0289}"  ; (ü -> ʉ) u with bar\r
+dkMacronStroke.item[chr(0x00dc)] := "{u+0244}"  ; (Ü -> Ʉ) U with bar\r
+dkMacronStroke.item["y"] := "{u+0233}"          ; (ȳ) y with macron\r
+dkMacronStroke.item["Y"] := "{u+0232}"          ; (Ȳ) Y with macron\r
+dkMacronStroke.item[chr(0x00ff)] := "{u+024f}"  ; (ÿ -> ɏ) y with stroke\r
+dkMacronStroke.item[chr(0x0178)] := "{u+024c}"  ; (Ÿ -> Ɏ) Y with stroke\r
+dkMacronStroke.item["z"] := "{u+01b6}"          ; (ƶ) z with stroke\r
+dkMacronStroke.item["Z"] := "{u+01b5}"          ; (Ƶ) Z with stroke\r
+dkMacronStroke.item[" "] := "{u+00af}"          ; (¯) macron\r
+\r
+\r
+; Dead Key :  Cedilla/Ogonek\r
+\r
+dkCedillaOgonek := ComObjCreate("Scripting.Dictionary")\r
+dkCedillaOgonek.item["a"] := "{u+0105}"          ; (ą) a with ogonek\r
+dkCedillaOgonek.item["A"] := "{u+0104}"          ; (Ą) A with ogonek\r
+dkCedillaOgonek.item["c"] := "{u+00e7}"          ; (ç) c with cedilla\r
+dkCedillaOgonek.item["C"] := "{u+00c7}"          ; (Ç) C with cedilla\r
+dkCedillaOgonek.item["d"] := "{u+1e11}"          ; (ḑ) d with cedilla\r
+dkCedillaOgonek.item["D"] := "{u+1e10}"          ; (Ḑ) D with cedilla\r
+dkCedillaOgonek.item["e"] := "{u+0119}"          ; (ę) e with ogonek\r
+dkCedillaOgonek.item["E"] := "{u+0118}"          ; (Ę) E with ogonek\r
+dkCedillaOgonek.item[chr(0x00eb)] := "{u+0229}"  ; (ë -> ȩ) e with cedilla\r
+dkCedillaOgonek.item[chr(0x00cb)] := "{u+0228}"  ; (Ë -> Ȩ) E with cedilla\r
+dkCedillaOgonek.item["g"] := "{u+0123}"          ; (ģ) g with cedilla\r
+dkCedillaOgonek.item["G"] := "{u+0122}"          ; (Ģ) G with cedilla\r
+dkCedillaOgonek.item["h"] := "{u+1e29}"          ; (ḩ) h with cedilla\r
+dkCedillaOgonek.item["H"] := "{u+1e28}"          ; (Ḩ) H with cedilla\r
+dkCedillaOgonek.item["i"] := "{u+012f}"          ; (į) i with ogonek\r
+dkCedillaOgonek.item["I"] := "{u+012e}"          ; (Į) I with ogonek\r
+dkCedillaOgonek.item["k"] := "{u+0137}"          ; (ķ) k with cedilla\r
+dkCedillaOgonek.item["K"] := "{u+0136}"          ; (Ķ) K with cedilla\r
+dkCedillaOgonek.item["l"] := "{u+013c}"          ; (ļ) l with cedilla\r
+dkCedillaOgonek.item["L"] := "{u+013b}"          ; (Ļ) L with cedilla\r
+dkCedillaOgonek.item["n"] := "{u+0146}"          ; (ņ) n with cedilla\r
+dkCedillaOgonek.item["N"] := "{u+0145}"          ; (Ņ) N with cedilla\r
+dkCedillaOgonek.item["o"] := "{u+01eb}"          ; (ǫ) o with ogonek\r
+dkCedillaOgonek.item["O"] := "{u+01ea}"          ; (Ǫ) O with ogonek\r
+dkCedillaOgonek.item[chr(0x00f6)] := "{u+01ed}"  ; (ö -> ǭ) o with ogonek and macron\r
+dkCedillaOgonek.item[chr(0x00d6)] := "{u+01ec}"  ; (Ö -> Ǭ) O with ogonek and macron\r
+dkCedillaOgonek.item["r"] := "{u+0157}"          ; (ŗ) r with cedilla\r
+dkCedillaOgonek.item["R"] := "{u+0156}"          ; (Ŗ) R with cedilla\r
+dkCedillaOgonek.item["s"] := "{u+015f}"          ; (ş) s with cedilla\r
+dkCedillaOgonek.item["S"] := "{u+015e}"          ; (Ş) S with cedilla\r
+dkCedillaOgonek.item["t"] := "{u+0163}"          ; (ţ) t with cedilla\r
+dkCedillaOgonek.item["T"] := "{u+0162}"          ; (Ţ) T with cedilla\r
+dkCedillaOgonek.item["u"] := "{u+0173}"          ; (ų) u with ogonek\r
+dkCedillaOgonek.item["U"] := "{u+0172}"          ; (Ų) U with ogonek\r
+dkCedillaOgonek.item["w"] := "{u+20a9}"          ; (₩) South Korean won\r
+dkCedillaOgonek.item["W"] := "{u+20a9}"          ; (₩) South Korean won\r
+dkCedillaOgonek.item["!"] := "{u+2013}"          ; (–) en dash\r
+dkCedillaOgonek.item["1"] := "{u+2013}"          ; (–) en dash\r
+dkCedillaOgonek.item["@"] := "{u+2014}"          ; (—) em dash\r
+dkCedillaOgonek.item["2"] := "{u+2014}"          ; (—) em dash\r
+dkCedillaOgonek.item["#"] := "{u+2015}"          ; (―) horizontal bar\r
+dkCedillaOgonek.item["3"] := "{u+2015}"          ; (―) horizontal bar\r
+dkCedillaOgonek.item["$"] := "{u+2010}"          ; (‐) hyphen\r
+dkCedillaOgonek.item["4"] := "{u+2010}"          ; (‐) hyphen\r
+dkCedillaOgonek.item[")"] := "{u+2012}"          ; (‒) figure dash\r
+dkCedillaOgonek.item["9"] := "{u+2012}"          ; (‒) figure dash\r
+dkCedillaOgonek.item[")"] := "{u+00ad}"          ; (­) soft hyphen\r
+dkCedillaOgonek.item["0"] := "{u+00ad}"          ; (­) soft hyphen\r
+dkCedillaOgonek.item["-"] := "{u+2011}"          ; (‑) non-breaking hyphen\r
+dkCedillaOgonek.item["."] := "{u+02db}"          ; (˛) ogonek\r
+dkCedillaOgonek.item[" "] := "{u+00b8}"          ; (¸) cedilla\r
+\r
+\r
+; Dead Key :  Breve/Special\r
+\r
+dkBreveSpecial := ComObjCreate("Scripting.Dictionary")\r
+dkBreveSpecial.item["a"] := "{u+0103}"          ; (ă) a with breve\r
+dkBreveSpecial.item["A"] := "{u+0102}"          ; (Ă) A with breve\r
+dkBreveSpecial.item["d"] := "{u+0256}"          ; (ɖ) small letter d with tail\r
+dkBreveSpecial.item["D"] := "{u+0189}"          ; (Ɖ) capital letter African D\r
+dkBreveSpecial.item["e"] := "{u+0115}"          ; (ĕ) e with breve\r
+dkBreveSpecial.item["E"] := "{u+0114}"          ; (Ĕ) E with breve\r
+dkBreveSpecial.item[chr(0x00eb)] := "{u+01dd}"  ; (ë -> ǝ) small turned e\r
+dkBreveSpecial.item[chr(0x00cb)] := "{u+018e}"  ; (Ë -> Ǝ) capital reversed E\r
+dkBreveSpecial.item["f"] := "{u+0259}"          ; (ə) small letter schwa (Azerbaijani)\r
+dkBreveSpecial.item["F"] := "{u+018f}"          ; (Ə) capital letter schwa (Azerbaijani)\r
+dkBreveSpecial.item["g"] := "{u+011f}"          ; (ğ) g with breve\r
+dkBreveSpecial.item["G"] := "{u+011e}"          ; (Ğ) G with breve\r
+dkBreveSpecial.item[chr(0x00e9)] := "{u+ab36}"  ; (é -> ꬶ) cross-tailed g\r
+dkBreveSpecial.item["h"] := "{u+0263}"          ; (ɣ) latin small gamma\r
+dkBreveSpecial.item["H"] := "{u+0194}"          ; (Ɣ) latin capital gamma\r
+dkBreveSpecial.item["i"] := "{u+012d}"          ; (ĭ) i with breve\r
+dkBreveSpecial.item["I"] := "{u+012c}"          ; (Ĭ) I with breve\r
+dkBreveSpecial.item["j"] := "{u+0133}"          ; (ij) ligature ij\r
+dkBreveSpecial.item["J"] := "{u+0132}"          ; (IJ) ligature IJ\r
+dkBreveSpecial.item["k"] := "{u+0138}"          ; (ĸ) small letter kra\r
+dkBreveSpecial.item["n"] := "{u+014b}"          ; (ŋ) small letter eng(ma)\r
+dkBreveSpecial.item["N"] := "{u+014a}"          ; (Ŋ) capital letter eng(ma)\r
+dkBreveSpecial.item["o"] := "{u+014f}"          ; (ŏ) o with breve\r
+dkBreveSpecial.item["O"] := "{u+014e}"          ; (Ŏ) O with breve\r
+dkBreveSpecial.item[chr(0x00f6)] := "{u+0254}"  ; (ö -> ɔ) small open o\r
+dkBreveSpecial.item[chr(0x00d6)] := "{u+0186}"  ; (Ö -> Ɔ) capital open O\r
+dkBreveSpecial.item["s"] := "{u+0219}"          ; (ș) s with comma below (Romanian)\r
+dkBreveSpecial.item["S"] := "{u+0218}"          ; (Ș) S with comma below (Romanian)\r
+dkBreveSpecial.item["t"] := "{u+021b}"          ; (ț) t with comma below (Romanian)\r
+dkBreveSpecial.item["T"] := "{u+021a}"          ; (Ț) T with comma below (Romanian)\r
+dkBreveSpecial.item["u"] := "{u+016d}"          ; (ŭ) u with breve\r
+dkBreveSpecial.item["U"] := "{u+016c}"          ; (Ŭ) U with breve\r
+dkBreveSpecial.item["v"] := "{u+028a}"          ; (ʊ) latin small letter upsilon\r
+dkBreveSpecial.item["V"] := "{u+01b1}"          ; (Ʊ) latin capital letter upsilon\r
+dkBreveSpecial.item["w"] := "{u+01bf}"          ; (ƿ) small letter wynn\r
+dkBreveSpecial.item["W"] := "{u+01f7}"          ; (Ƿ) capital letter wynn\r
+dkBreveSpecial.item["y"] := "{u+021d}"          ; (ȝ) small letter yogh\r
+dkBreveSpecial.item["Y"] := "{u+021c}"          ; (Ȝ) capital letter yogh\r
+dkBreveSpecial.item["#"] := "{u+0292}"          ; (ʒ) small letter ezh\r
+dkBreveSpecial.item["3"] := "{u+01b7}"          ; (Ʒ) capital letter ezh\r
+dkBreveSpecial.item[" "] := "{u+02d8}"          ; (˘) breve\r
+\r
+\r
+; Dead Key :  Acute Accent\r
+\r
+dkAcuteAccent := ComObjCreate("Scripting.Dictionary")\r
+dkAcuteAccent.item["a"] := "{u+00e1}"          ; (á) a with acute\r
+dkAcuteAccent.item["A"] := "{u+00c1}"          ; (Á) A with acute\r
+dkAcuteAccent.item["b"] := "{u+0253}"          ; (ɓ) b with hook\r
+dkAcuteAccent.item["B"] := "{u+0181}"          ; (Ɓ) B with hook\r
+dkAcuteAccent.item["c"] := "{u+0107}"          ; (ć) c with acute\r
+dkAcuteAccent.item["C"] := "{u+0106}"          ; (Ć) C with acute\r
+dkAcuteAccent.item[chr(0x00e7)] := "{u+1e09}"  ; (ç -> ḉ) c with cedilla and acute\r
+dkAcuteAccent.item[chr(0x00c7)] := "{u+1e08}"  ; (Ç -> Ḉ) C with cedilla and acute\r
+dkAcuteAccent.item["d"] := "{u+0257}"          ; (ɗ) d with hook\r
+dkAcuteAccent.item["D"] := "{u+018a}"          ; (Ɗ) D with hook\r
+dkAcuteAccent.item["e"] := "{u+00e9}"          ; (é) e with acute\r
+dkAcuteAccent.item["E"] := "{u+00c9}"          ; (É) E with acute\r
+dkAcuteAccent.item["f"] := "{u+0192}"          ; (ƒ) f with hook\r
+dkAcuteAccent.item["F"] := "{u+0191}"          ; (Ƒ) F with hook\r
+dkAcuteAccent.item["g"] := "{u+01f5}"          ; (ǵ) g with acute\r
+dkAcuteAccent.item["G"] := "{u+01f4}"          ; (Ǵ) G with acute\r
+dkAcuteAccent.item["h"] := "{u+0266}"          ; (ɦ) h with hook\r
+dkAcuteAccent.item["H"] := "{u+a7aa}"          ; (Ɦ) H with hook\r
+dkAcuteAccent.item["i"] := "{u+00ed}"          ; (í) i with acute\r
+dkAcuteAccent.item["I"] := "{u+00cd}"          ; (Í) I with acute\r
+dkAcuteAccent.item["j"] := "{u+0133}"          ; (ij) ligature ij\r
+dkAcuteAccent.item["J"] := "{u+0132}"          ; (IJ) ligature IJ\r
+dkAcuteAccent.item["k"] := "{u+0199}"          ; (ƙ) k with hook\r
+dkAcuteAccent.item["K"] := "{u+0198}"          ; (Ƙ) K with hook\r
+dkAcuteAccent.item["l"] := "{u+013a}"          ; (ĺ) l with acute\r
+dkAcuteAccent.item["L"] := "{u+0139}"          ; (Ĺ) L with acute\r
+dkAcuteAccent.item["m"] := "{u+1e3f}"          ; (ḿ) m with acute\r
+dkAcuteAccent.item["M"] := "{u+1e3e}"          ; (Ḿ) M with acute\r
+dkAcuteAccent.item["n"] := "{u+0144}"          ; (ń) n with acute\r
+dkAcuteAccent.item["N"] := "{u+0143}"          ; (Ń) N with acute\r
+dkAcuteAccent.item["o"] := "{u+00f3}"          ; (ó) o with acute\r
+dkAcuteAccent.item["O"] := "{u+00d3}"          ; (Ó) O with acute\r
+dkAcuteAccent.item[chr(0x00f6)] := "{u+0151}"  ; (ö -> ő) o with double acute\r
+dkAcuteAccent.item[chr(0x00d6)] := "{u+0150}"  ; (Ö -> Ő) O with double acute\r
+dkAcuteAccent.item["p"] := "{u+01a5}"          ; (ƥ) p with hook\r
+dkAcuteAccent.item["P"] := "{u+01a4}"          ; (Ƥ) P with hook\r
+dkAcuteAccent.item["q"] := "{u+024b}"          ; (ɋ) q with hook tail\r
+dkAcuteAccent.item["Q"] := "{u+024a}"          ; (Ɋ) Q with hook tail\r
+dkAcuteAccent.item["r"] := "{u+0155}"          ; (ŕ) r with acute\r
+dkAcuteAccent.item["R"] := "{u+0154}"          ; (Ŕ) R with acute\r
+dkAcuteAccent.item["s"] := "{u+015b}"          ; (ś) s with acute\r
+dkAcuteAccent.item["S"] := "{u+015a}"          ; (Ś) S with acute\r
+dkAcuteAccent.item["t"] := "{u+01ad}"          ; (ƭ) t with hook\r
+dkAcuteAccent.item["T"] := "{u+01ac}"          ; (Ƭ) T with hook\r
+dkAcuteAccent.item["u"] := "{u+00fa}"          ; (ú) u with acute\r
+dkAcuteAccent.item["U"] := "{u+00da}"          ; (Ú) U with acute\r
+dkAcuteAccent.item[chr(0x00fc)] := "{u+0171}"  ; (ü -> ű) u with double acute\r
+dkAcuteAccent.item[chr(0x00dc)] := "{u+0170}"  ; (Ü -> Ű) U with double acute\r
+dkAcuteAccent.item["v"] := "{u+028b}"          ; (ʋ) v with hook\r
+dkAcuteAccent.item["V"] := "{u+01b2}"          ; (Ʋ) V with hook\r
+dkAcuteAccent.item["w"] := "{u+1e83}"          ; (ẃ) w with acute\r
+dkAcuteAccent.item["W"] := "{u+1e82}"          ; (Ẃ) W with acute\r
+dkAcuteAccent.item["y"] := "{u+00fd}"          ; (ý) y with acute\r
+dkAcuteAccent.item["Y"] := "{u+00dd}"          ; (Ý) Y with acute\r
+dkAcuteAccent.item["z"] := "{u+017a}"          ; (ź) z with acute\r
+dkAcuteAccent.item["Z"] := "{u+0179}"          ; (Ź) Z with acute\r
+dkAcuteAccent.item[chr(0x00e5)] := "{u+01fb}"  ; (å -> ǻ) a with ring above and acute\r
+dkAcuteAccent.item[chr(0x00c5)] := "{u+01fa}"  ; (Å -> Ǻ) A with ring above and acute\r
+dkAcuteAccent.item[chr(0x00e6)] := "{u+01fd}"  ; (æ -> ǽ) ae with acute\r
+dkAcuteAccent.item[chr(0x00c6)] := "{u+01fc}"  ; (Æ -> Ǽ) AE with acute\r
+dkAcuteAccent.item[chr(0x00f8)] := "{u+01ff}"  ; (ø -> ǿ) o with stroke and acute\r
+dkAcuteAccent.item[chr(0x00d8)] := "{u+01fe}"  ; (Ø -> Ǿ) O with stroke and acute\r
+dkAcuteAccent.item["@"] := "{u+266b}"          ; (♫) beamed eighth notes\r
+dkAcuteAccent.item["2"] := "{u+266b}"          ; (♫) beamed eighth notes\r
+dkAcuteAccent.item["#"] := "{u+2042}"          ; (⁂) asterism\r
+dkAcuteAccent.item["3"] := "{u+2042}"          ; (⁂) asterism\r
+dkAcuteAccent.item["$"] := "{u+2605}"          ; (★) black star\r
+dkAcuteAccent.item["4"] := "{u+2605}"          ; (★) black star\r
+dkAcuteAccent.item["%"] := "{u+2606}"          ; (☆) white star\r
+dkAcuteAccent.item["5"] := "{u+2606}"          ; (☆) white star\r
+dkAcuteAccent.item["^"] := "{u+273d}"          ; (✽) heavy teardrop-spoked asterisk\r
+dkAcuteAccent.item["6"] := "{u+273d}"          ; (✽) heavy teardrop-spoked asterisk\r
+dkAcuteAccent.item["&"] := "{u+273b}"          ; (✻) teardrop-spoked asterisk\r
+dkAcuteAccent.item["7"] := "{u+273b}"          ; (✻) teardrop-spoked asterisk\r
+dkAcuteAccent.item["*"] := "{u+266a}"          ; (♪) eighth note\r
+dkAcuteAccent.item["8"] := "{u+266a}"          ; (♪) eighth note\r
+dkAcuteAccent.item["'"] := "{u+00b4}"          ; (´) acute accent\r
+dkAcuteAccent.item[" "] := "{u+00b4}"          ; (´) acute accent\r
+\r
+\r
+; Dead Key :  Diaeresis\r
+\r
+dkDiaeresis := ComObjCreate("Scripting.Dictionary")\r
+dkDiaeresis.item["a"] := "{u+00e4}"  ; (ä) a with diaeresis\r
+dkDiaeresis.item["A"] := "{u+00c4}"  ; (Ä) A with diaeresis\r
+dkDiaeresis.item["e"] := "{u+00eb}"  ; (ë) e with diaeresis\r
+dkDiaeresis.item["E"] := "{u+00cb}"  ; (Ë) E with diaeresis\r
+dkDiaeresis.item["h"] := "{u+1e27}"  ; (ḧ) h with diaeresis\r
+dkDiaeresis.item["H"] := "{u+1e26}"  ; (Ḧ) H with diaeresis\r
+dkDiaeresis.item["i"] := "{u+00ef}"  ; (ï) i with diaeresis\r
+dkDiaeresis.item["I"] := "{u+00cf}"  ; (Ï) I with diaeresis\r
+dkDiaeresis.item["o"] := "{u+00f6}"  ; (ö) o with diaeresis\r
+dkDiaeresis.item["O"] := "{u+00d6}"  ; (Ö) O with diaeresis\r
+dkDiaeresis.item["s"] := "{u+00df}"  ; (ß) small sharp s (Eszett)\r
+dkDiaeresis.item["S"] := "{u+1e9e}"  ; (ẞ) capital sharp S (capital Eszett)\r
+dkDiaeresis.item["t"] := "{u+1e97}"  ; (ẗ) t with diaeresis\r
+dkDiaeresis.item["u"] := "{u+00fc}"  ; (ü) u with diaeresis\r
+dkDiaeresis.item["U"] := "{u+00dc}"  ; (Ü) U with diaeresis\r
+dkDiaeresis.item["w"] := "{u+1e85}"  ; (ẅ) w with diaeresis\r
+dkDiaeresis.item["W"] := "{u+1e84}"  ; (Ẅ) W with diaeresis\r
+dkDiaeresis.item["x"] := "{u+1e8d}"  ; (ẍ) x with diaeresis\r
+dkDiaeresis.item["X"] := "{u+1e8c}"  ; (Ẍ) X with diaeresis\r
+dkDiaeresis.item["y"] := "{u+00ff}"  ; (ÿ) y with diaeresis\r
+dkDiaeresis.item["Y"] := "{u+0178}"  ; (Ÿ) Y with diaeresis\r
+dkDiaeresis.item[chr(34)] := "{u+00a8}" ; (¨) diaeresis\r
+dkDiaeresis.item[" "] := "{u+00a8}"  ; (¨) diaeresis\r
+\r
+\r
+; Dead Key :  Grave Accent\r
+\r
+dkGraveAccent := ComObjCreate("Scripting.Dictionary")\r
+dkGraveAccent.item["a"] := "{u+00e0}"  ; (à) a with grave\r
+dkGraveAccent.item["A"] := "{u+00c0}"  ; (À) A with grave\r
+dkGraveAccent.item["e"] := "{u+00e8}"  ; (è) e with grave\r
+dkGraveAccent.item["E"] := "{u+00c8}"  ; (È) E with grave\r
+dkGraveAccent.item["i"] := "{u+00ec}"  ; (ì) i with grave\r
+dkGraveAccent.item["I"] := "{u+00cc}"  ; (Ì) I with grave\r
+dkGraveAccent.item["n"] := "{u+01f9}"  ; (ǹ) n with grave\r
+dkGraveAccent.item["N"] := "{u+01f8}"  ; (Ǹ) N with grave\r
+dkGraveAccent.item["o"] := "{u+00f2}"  ; (ò) o with grave\r
+dkGraveAccent.item["O"] := "{u+00d2}"  ; (Ò) O with grave\r
+dkGraveAccent.item["u"] := "{u+00f9}"  ; (ù) u with grave\r
+dkGraveAccent.item["U"] := "{u+00d9}"  ; (Ù) U with grave\r
+dkGraveAccent.item["w"] := "{u+1e81}"  ; (ẁ) w with grave\r
+dkGraveAccent.item["W"] := "{u+1e80}"  ; (Ẁ) W with grave\r
+dkGraveAccent.item["y"] := "{u+1ef3}"  ; (ỳ) y with grave\r
+dkGraveAccent.item["Y"] := "{u+1ef2}"  ; (Ỳ) Y with grave\r
+dkGraveAccent.item[chr(0x00e4)] := "{u+20b3}"  ; (ä -> ₳) Argentine austral\r
+dkGraveAccent.item[chr(0x00c4)] := "{u+20b3}"  ; (Ä -> ₳) Argentine austral\r
+dkGraveAccent.item["b"] := "{u+20bf}"          ; (₿) bitcoin\r
+dkGraveAccent.item["B"] := "{u+20bf}"          ; (₿) bitcoin\r
+dkGraveAccent.item["c"] := "{u+20a1}"          ; (₡) Costa Rican colón\r
+dkGraveAccent.item["C"] := "{u+20b5}"          ; (₵) Ghanaian cedi\r
+dkGraveAccent.item[chr(0x00e7)] := "{u+20a2}"  ; (ç -> ₢) Brazilian cruzeiro\r
+dkGraveAccent.item[chr(0x00c7)] := "{u+20a2}"  ; (Ç -> ₢) Brazilian cruzeiro\r
+dkGraveAccent.item["d"] := "{u+20ab}"          ; (₫) Vietnamese dong\r
+dkGraveAccent.item["D"] := "{u+20af}"          ; (₯) Greek drachma\r
+dkGraveAccent.item["f"] := "{u+20a3}"          ; (₣) French franc\r
+dkGraveAccent.item["F"] := "{u+20a3}"          ; (₣) French franc\r
+dkGraveAccent.item["g"] := "{u+20b2}"          ; (₲) Paraguayan guaraní\r
+dkGraveAccent.item["G"] := "{u+20b2}"          ; (₲) Paraguayan guaraní\r
+dkGraveAccent.item["h"] := "{u+20b4}"          ; (₴) Ukrainian hryvnia\r
+dkGraveAccent.item["H"] := "{u+20b4}"          ; (₴) Ukrainian hryvnia\r
+dkGraveAccent.item["k"] := "{u+20ad}"          ; (₭) Laotian kip\r
+dkGraveAccent.item["K"] := "{u+20ad}"          ; (₭) Laotian kip\r
+dkGraveAccent.item["l"] := "{u+20ba}"          ; (₺) Turkish lira\r
+dkGraveAccent.item["L"] := "{u+20be}"          ; (₾) Georgian lari\r
+dkGraveAccent.item[chr(0x00f8)] := "{u+20a4}"  ; (ø -> ₤) lira\r
+dkGraveAccent.item[chr(0x00d8)] := "{u+20b6}"  ; (Ø -> ₶) livre tournois\r
+dkGraveAccent.item["m"] := "{u+20bc}"          ; (₼) Azerbaijani manat\r
+dkGraveAccent.item["M"] := "{u+20a5}"          ; (₥) mill sign\r
+dkGraveAccent.item[chr(0x00f1)] := "{u+20a6}"  ; (ñ -> ₦) Nigerian naira\r
+dkGraveAccent.item[chr(0x00d1)] := "{u+20a6}"  ; (Ñ -> ₦) Nigerian naira\r
+dkGraveAccent.item["p"] := "{u+20b1}"          ; (₱) Philippine peso\r
+dkGraveAccent.item["P"] := "{u+20b1}"          ; (₱) Philippine peso\r
+dkGraveAccent.item["r"] := "{u+20b9}"          ; (₹) Indian rupee\r
+dkGraveAccent.item["R"] := "{u+20bd}"          ; (₽) Russian ruble\r
+dkGraveAccent.item["s"] := "{u+20aa}"          ; (₪) Israeli new shekel\r
+dkGraveAccent.item["S"] := "{u+20b7}"          ; (₷) spesmilo\r
+dkGraveAccent.item["t"] := "{u+20ae}"          ; (₮) Mongolian tögrög (tugrik)\r
+dkGraveAccent.item["T"] := "{u+20b8}"          ; (₸) Kazakh tenge\r
+dkGraveAccent.item[chr(0x00e5)] := "{u+20a9}"  ; (å -> ₩) South Korean won\r
+dkGraveAccent.item[chr(0x00c5)] := "{u+20a9}"  ; (Å -> ₩) South Korean won\r
+dkGraveAccent.item["!"] := "{u+2002}"  ; en space\r
+dkGraveAccent.item["@"] := "{u+2003}"  ; em space\r
+dkGraveAccent.item["#"] := "{u+2004}"  ; three-per-em space\r
+dkGraveAccent.item["3"] := "{u+2004}"  ; three-per-em space\r
+dkGraveAccent.item["$"] := "{u+2005}"  ; four-per-em space\r
+dkGraveAccent.item["4"] := "{u+2005}"  ; four-per-em space\r
+dkGraveAccent.item["%"] := "{u+2008}"  ; punctuation space\r
+dkGraveAccent.item["5"] := "{u+2008}"  ; punctuation space\r
+dkGraveAccent.item["^"] := "{u+2006}"  ; six-per-em space\r
+dkGraveAccent.item["6"] := "{u+2006}"  ; six-per-em space\r
+dkGraveAccent.item["&"] := "{u+2009}"  ; thin space\r
+dkGraveAccent.item["7"] := "{u+2009}"  ; thin space\r
+dkGraveAccent.item["*"] := "{u+200a}"  ; hair space\r
+dkGraveAccent.item["8"] := "{u+200a}"  ; hair space\r
+dkGraveAccent.item["("] := "{u+2007}"  ; figure space\r
+dkGraveAccent.item["9"] := "{u+2007}"  ; figure space\r
+dkGraveAccent.item[")"] := "{u+200b}"  ; zero-width space\r
+dkGraveAccent.item["0"] := "{u+200b}"  ; zero-width space\r
+dkGraveAccent.item["-"] := "{u+00a0}"  ; non-breaking space\r
+dkGraveAccent.item["="] := "{u+202f}"  ; narrow no-break space\r
+dkGraveAccent.item["1"] := "{u+2000}"  ; en quad\r
+dkGraveAccent.item["2"] := "{u+2001}"  ; em quad\r
+dkGraveAccent.item["``"] := "``"       ; grave accent\r
+dkGraveAccent.item[" "] := "``"        ; grave accent\r
+\r
+\r
+; Dead Key :  Tilde\r
+\r
+dkTilde := ComObjCreate("Scripting.Dictionary")\r
+dkTilde.item["a"] := "{u+00e3}"  ; (ã) a with tilde\r
+dkTilde.item["A"] := "{u+00c3}"  ; (Ã) A with tilde\r
+dkTilde.item["e"] := "{u+1ebd}"  ; (ẽ) e with tilde\r
+dkTilde.item["E"] := "{u+1ebc}"  ; (Ẽ) E with tilde\r
+dkTilde.item["i"] := "{u+0129}"  ; (ĩ) i with tilde\r
+dkTilde.item["I"] := "{u+0128}"  ; (Ĩ) I with tilde\r
+dkTilde.item["n"] := "{u+00f1}"  ; (ñ) n with tilde\r
+dkTilde.item["N"] := "{u+00d1}"  ; (Ñ) N with tilde\r
+dkTilde.item["o"] := "{u+00f5}"  ; (õ) o with tilde\r
+dkTilde.item["O"] := "{u+00d5}"  ; (Õ) O with tilde\r
+dkTilde.item["u"] := "{u+0169}"  ; (ũ) u with tilde\r
+dkTilde.item["U"] := "{u+0168}"  ; (Ũ) U with tilde\r
+dkTilde.item["v"] := "{u+1e7d}"  ; (ṽ) v with tilde\r
+dkTilde.item["V"] := "{u+1e7c}"  ; (Ṽ) V with tilde\r
+dkTilde.item["y"] := "{u+1ef9}"  ; (ỹ) y with tilde\r
+dkTilde.item["Y"] := "{u+1ef8}"  ; (Ỹ) Y with tilde\r
+dkTilde.item["~"] := "~"         ;     tilde\r
+dkTilde.item[" "] := "~"         ;     tilde\r
+\r
+\r
+; Dead Key :  Not Sign\r
+\r
+dkNotSign := ComObjCreate("Scripting.Dictionary")\r
+dkNotSign.item["a"] := "{u+00aa}"          ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician)\r
+dkNotSign.item["A"] := "{u+00aa}"          ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician)\r
+dkNotSign.item[chr(0x00e4)] := "{u+214d}"  ; (ä -> ⅍) aktieselskab\r
+dkNotSign.item[chr(0x00c4)] := "{u+214d}"  ; (Ä -> ⅍) aktieselskab\r
+dkNotSign.item["b"] := "{u+2610}"          ; (☐) ballot box\r
+dkNotSign.item["B"] := "{u+2612}"          ; (☒) ballot box with x\r
+dkNotSign.item["c"] := "{u+00a9}"          ; (©) copyright sign\r
+dkNotSign.item["C"] := "{u+00a4}"          ; (¤) currency sign\r
+dkNotSign.item[chr(0x00e7)] := "{u+2105}"  ; (ç -> ℅) care of\r
+dkNotSign.item[chr(0x00c7)] := "{u+2105}"  ; (Ç -> ℅) care of\r
+dkNotSign.item["d"] := "{u+2020}"          ; (†) dagger\r
+dkNotSign.item["D"] := "{u+2021}"          ; (‡) double dagger\r
+dkNotSign.item["e"] := "{u+2026}"          ; (…) horizontal ellipsis\r
+dkNotSign.item["E"] := "{u+212e}"          ; (℮) estimated symbol\r
+dkNotSign.item["f"] := "{u+2640}"          ; (♀) Venus symbol (female)\r
+dkNotSign.item["F"] := "{u+2640}"          ; (♀) Venus symbol (female)\r
+dkNotSign.item["h"] := "{u+2661}"          ; (♡) white heart suit\r
+dkNotSign.item["H"] := "{u+2665}"          ; (♥) black heart suit\r
+dkNotSign.item["l"] := "{u+2113}"          ; (ℓ) script small l\r
+dkNotSign.item["L"] := "{u+2113}"          ; (ℓ) script small l\r
+dkNotSign.item["m"] := "{u+2642}"          ; (♂) Mars symbol (male)\r
+dkNotSign.item["M"] := "{u+2642}"          ; (♂) Mars symbol (male)\r
+dkNotSign.item["n"] := "{u+00ac}"          ; (¬) not sign\r
+dkNotSign.item["N"] := "{u+00ac}"          ; (¬) not sign\r
+dkNotSign.item["o"] := "{u+00ba}"          ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)\r
+dkNotSign.item["O"] := "{u+00ba}"          ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)\r
+dkNotSign.item[chr(0x00f6)] := "{u+2126}"  ; (ö -> Ω) ohm sign (backwards compatibility)\r
+dkNotSign.item[chr(0x00d6)] := "{u+2126}"  ; (Ö -> Ω) ohm sign (backwards compatibility)\r
+dkNotSign.item["p"] := "{u+00b6}"          ; (¶) pilcrow sign\r
+dkNotSign.item["P"] := "{u+2117}"          ; (℗) sound recording copyright\r
+dkNotSign.item["q"] := "{u+201a}"          ; (‚) single low-9 quotation mark\r
+dkNotSign.item["Q"] := "{u+201a}"          ; (‚) single low-9 quotation mark\r
+dkNotSign.item["r"] := "{u+00ae}"          ; (®) registered sign\r
+dkNotSign.item["R"] := "{u+00ae}"          ; (®) registered sign\r
+dkNotSign.item["s"] := "{u+00a7}"          ; (§) section sign\r
+dkNotSign.item["S"] := "{u+2120}"          ; (℠) service mark\r
+dkNotSign.item["t"] := "{u+2122}"          ; (™) trademark symbol\r
+dkNotSign.item["T"] := "{u+2122}"          ; (™) trademark symbol\r
+dkNotSign.item["v"] := "{u+2713}"          ; (✓) check mark\r
+dkNotSign.item["V"] := "{u+2714}"          ; (✔) heavy check mark\r
+dkNotSign.item["w"] := "{u+2611}"          ; (☑) ballot box with check\r
+dkNotSign.item["W"] := "{u+2619}"          ; (☙) reversed rotated floral heart bullet\r
+dkNotSign.item["x"] := "{u+2717}"          ; (✗) ballot x\r
+dkNotSign.item["X"] := "{u+2718}"          ; (✘) heavy ballot x\r
+dkNotSign.item["y"] := "{u+263a}"          ; (☺) white smiling face\r
+dkNotSign.item["Y"] := "{u+263b}"          ; (☻) black smiling face\r
+dkNotSign.item["!"] := "{u+2190}"          ; (←) leftwards arrow\r
+dkNotSign.item["@"] := "{u+2193}"          ; (↓) downwards arrow\r
+dkNotSign.item["#"] := "{u+2191}"          ; (↑) upwards arrow\r
+dkNotSign.item["$"] := "{u+2192}"          ; (→) rightwards arrow\r
+dkNotSign.item["%"] := "{u+2196}"          ; (↖) north west arrow\r
+dkNotSign.item["^"] := "{u+2199}"          ; (↙) south west arrow\r
+dkNotSign.item["&"] := "{u+2197}"          ; (↗) north east arrow\r
+dkNotSign.item["*"] := "{u+2198}"          ; (↘) south east arrow\r
+dkNotSign.item["("] := "{u+2195}"          ; (↕) up down arrow\r
+dkNotSign.item[")"] := "{u+21a8}"          ; (↨) up down arrow with base\r
+dkNotSign.item["="] := "{u+2194}"          ; (↔) left right arrow\r
+dkNotSign.item["1"] := "{u+21d0}"          ; (⇐) leftwards double arrow\r
+dkNotSign.item["2"] := "{u+21d3}"          ; (⇓) downwards double arrow\r
+dkNotSign.item["3"] := "{u+21d1}"          ; (⇑) upwards double arrow\r
+dkNotSign.item["4"] := "{u+21d2}"          ; (⇒) rightwards double arrow\r
+dkNotSign.item["5"] := "{u+21d6}"          ; (⇖) north west double arrow\r
+dkNotSign.item["6"] := "{u+21d9}"          ; (⇙) south west double arrow\r
+dkNotSign.item["7"] := "{u+21d7}"          ; (⇗) north east double arrow\r
+dkNotSign.item["8"] := "{u+21d8}"          ; (⇘) south east double arrow\r
+dkNotSign.item["9"] := "{u+21d5}"          ; (⇕) up down double arrow\r
+dkNotSign.item["0"] := "{u+21b2}"          ; (↲) downwards arrow with tip leftwards\r
+dkNotSign.item["+"] := "{u+21d4}"          ; (⇔) left right double arrow\r
+dkNotSign.item["."] := "{u+2022}"          ; (•) bullet\r
+dkNotSign.item[","] := "{u+25e6}"          ; (◦) white bullet\r
+dkNotSign.item["-"] := "{u+2043}"          ; (⁃) hyphen bullet\r
+dkNotSign.item["/"] := "{u+203c}"          ; (‼) double exclamation mark\r
+dkNotSign.item["?"] := "{u+203d}"          ; (‽) interrobang\r
+dkNotSign.item[chr(0x00bf)] := "{u+2e18}"  ; (¿ -> ⸘) inverted interrobang\r
+dkNotSign.item[chr(0x2026)] := "{u+2e2e}"  ; (… -> ⸮) reversed question mark\r
+dkNotSign.item["\"] := "{u+205e}"          ; (⁞) vertical four dots\r
+dkNotSign.item["|"] := "{u+205e}"          ; (⁞) vertical four dots\r
+dkNotSign.item[" "] := "{u+00ac}"          ; (¬) not sign\r
+\r
+\r
+; Dead Key :  Broken Bar\r
+\r
+dkBrokenBar := ComObjCreate("Scripting.Dictionary")\r
+dkBrokenBar.item["a"] := "{u+0251}"          ; (ɑ) latin small letter alpha\r
+dkBrokenBar.item["A"] := "{u+2c6d}"          ; (Ɑ) latin capital letter alpha\r
+dkBrokenBar.item[chr(0x00e4)] := "{u+0252}"  ; (ä -> ɒ) latin small letter turned alpha\r
+dkBrokenBar.item[chr(0x00c4)] := "{u+2c70}"  ; (Ä -> Ɒ) latin capital letter turned alpha\r
+dkBrokenBar.item["c"] := "{u+0188}"          ; (ƈ) c with hook\r
+dkBrokenBar.item["C"] := "{u+0187}"          ; (Ƈ) C with hook\r
+dkBrokenBar.item["e"] := "{u+025b}"          ; (ɛ) small open e (latin small epsilon)\r
+dkBrokenBar.item["E"] := "{u+0190}"          ; (Ɛ) capital open E (latin capital epsilon)\r
+dkBrokenBar.item["f"] := "{u+2766}"          ; (❦) floral heart\r
+dkBrokenBar.item["F"] := "{u+2767}"          ; (❧) rotated floral heart bullet\r
+dkBrokenBar.item["g"] := "{u+0260}"          ; (ɠ) g with hook\r
+dkBrokenBar.item["G"] := "{u+0193}"          ; (Ɠ) G with hook\r
+dkBrokenBar.item["h"] := "{u+a727}"          ; (ꜧ) small letter heng\r
+dkBrokenBar.item["H"] := "{u+a726}"          ; (Ꜧ) capital letter heng\r
+dkBrokenBar.item[chr(0x00f9)] := "{u+0267}"  ; (ù -> ɧ) small letter heng with hook\r
+dkBrokenBar.item["k"] := "{u+1e31}"          ; (ḱ) k with acute\r
+dkBrokenBar.item["K"] := "{u+1e30}"          ; (Ḱ) K with acute\r
+dkBrokenBar.item["m"] := "{u+0271}"          ; (ɱ) m with hook\r
+dkBrokenBar.item["M"] := "{u+2c6e}"          ; (Ɱ) M with hook\r
+dkBrokenBar.item["n"] := "{u+0272}"          ; (ɲ) n with left hook\r
+dkBrokenBar.item["N"] := "{u+019d}"          ; (Ɲ) N with left hook\r
+dkBrokenBar.item["o"] := "{u+01a1}"          ; (ơ) o with horn\r
+dkBrokenBar.item["O"] := "{u+01a0}"          ; (Ơ) O with horn\r
+dkBrokenBar.item["p"] := "{u+1e55}"          ; (ṕ) p with acute\r
+dkBrokenBar.item["P"] := "{u+1e54}"          ; (Ṕ) P with acute\r
+dkBrokenBar.item["r"] := "{u+027d}"          ; (ɽ) r with tail\r
+dkBrokenBar.item["R"] := "{u+2c64}"          ; (Ɽ) R with tail\r
+dkBrokenBar.item["s"] := "{u+0283}"          ; (ʃ) small letter esh\r
+dkBrokenBar.item["S"] := "{u+01a9}"          ; (Ʃ) capital letter esh\r
+dkBrokenBar.item[chr(0x00df)] := "{u+017f}"  ; (ß -> ſ) small long s\r
+dkBrokenBar.item["u"] := "{u+01b0}"          ; (ư) u with horn\r
+dkBrokenBar.item["U"] := "{u+01af}"          ; (Ư) U with horn\r
+dkBrokenBar.item["v"] := "{u+028c}"          ; (ʌ) latin small letter turned v\r
+dkBrokenBar.item["V"] := "{u+0245}"          ; (Ʌ) latin capital letter turned V\r
+dkBrokenBar.item["w"] := "{u+2c73}"          ; (ⱳ) w with hook\r
+dkBrokenBar.item["W"] := "{u+2c72}"          ; (Ⱳ) W with hook\r
+dkBrokenBar.item["y"] := "{u+01b4}"          ; (ƴ) y with hook\r
+dkBrokenBar.item["Y"] := "{u+01b3}"          ; (Ƴ) Y with hook\r
+dkBrokenBar.item["z"] := "{u+0225}"          ; (ȥ) z with hook\r
+dkBrokenBar.item["Z"] := "{u+0224}"          ; (Ȥ) Z with hook\r
+dkBrokenBar.item["!"] := "{u+2116}"  ; (№) numero sign\r
+dkBrokenBar.item["1"] := "{u+2116}"  ; (№) numero sign\r
+dkBrokenBar.item["@"] := "{u+00bd}"  ; (½) vulgar fraction 1/2\r
+dkBrokenBar.item["2"] := "{u+00bd}"  ; (½) vulgar fraction 1/2\r
+dkBrokenBar.item["#"] := "{u+2153}"  ; (⅓) vulgar fraction 1/3\r
+dkBrokenBar.item["3"] := "{u+2153}"  ; (⅓) vulgar fraction 1/3\r
+dkBrokenBar.item["$"] := "{u+00bc}"  ; (¼) vulgar fraction 1/4\r
+dkBrokenBar.item["4"] := "{u+00bc}"  ; (¼) vulgar fraction 1/4\r
+dkBrokenBar.item["%"] := "{u+2154}"  ; (⅔) vulgar fraction 2/3\r
+dkBrokenBar.item["5"] := "{u+2154}"  ; (⅔) vulgar fraction 2/3\r
+dkBrokenBar.item["^"] := "{u+00be}"  ; (¾) vulgar fraction 3/4\r
+dkBrokenBar.item["6"] := "{u+00be}"  ; (¾) vulgar fraction 3/4\r
+dkBrokenBar.item["&"] := "{u+215b}"  ; (⅛) vulgar fraction 1/8\r
+dkBrokenBar.item["7"] := "{u+215b}"  ; (⅛) vulgar fraction 1/8\r
+dkBrokenBar.item["*"] := "{u+215c}"  ; (⅜) vulgar fraction 3/8\r
+dkBrokenBar.item["8"] := "{u+215c}"  ; (⅜) vulgar fraction 3/8\r
+dkBrokenBar.item["("] := "{u+215d}"  ; (⅝) vulgar fraction 5/8\r
+dkBrokenBar.item["9"] := "{u+215d}"  ; (⅝) vulgar fraction 5/8\r
+dkBrokenBar.item[")"] := "{u+215e}"  ; (⅞) vulgar fraction 7/8\r
+dkBrokenBar.item["0"] := "{u+215e}"  ; (⅞) vulgar fraction 7/8\r
+dkBrokenBar.item["\"] := "{u+00a6}"  ; (¦) broken bar\r
+dkBrokenBar.item["|"] := "{u+00a6}"  ; (¦) broken bar\r
+dkBrokenBar.item[" "] := "{u+00a6}"  ; (¦) broken bar\r
+\r
+\r
+; Dead Key :  Greek Alphabet\r
+\r
+dkGreekAlphabet := ComObjCreate("Scripting.Dictionary")\r
+dkGreekAlphabet.item["a"] := "{u+03b1}"  ; (α) small alpha\r
+dkGreekAlphabet.item["A"] := "{u+0391}"  ; (Α) capital alpha\r
+dkGreekAlphabet.item["b"] := "{u+03b2}"  ; (β) small beta\r
+dkGreekAlphabet.item["B"] := "{u+0392}"  ; (Β) capital beta\r
+dkGreekAlphabet.item["v"] := "{u+03b2}"  ; (β) small beta\r
+dkGreekAlphabet.item["V"] := "{u+0392}"  ; (Β) capital beta\r
+dkGreekAlphabet.item["g"] := "{u+03b3}"  ; (γ) small gamma\r
+dkGreekAlphabet.item["G"] := "{u+0393}"  ; (Γ) capital gamma\r
+dkGreekAlphabet.item["d"] := "{u+03b4}"  ; (δ) small delta\r
+dkGreekAlphabet.item["D"] := "{u+0394}"  ; (Δ) capital delta\r
+dkGreekAlphabet.item["e"] := "{u+03b5}"  ; (ε) small epsilon\r
+dkGreekAlphabet.item["E"] := "{u+0395}"  ; (Ε) capital epsilon\r
+dkGreekAlphabet.item["z"] := "{u+03b6}"  ; (ζ) small zeta\r
+dkGreekAlphabet.item["Z"] := "{u+0396}"  ; (Ζ) capital zeta\r
+dkGreekAlphabet.item["h"] := "{u+03b7}"  ; (η) small eta\r
+dkGreekAlphabet.item["H"] := "{u+0397}"  ; (Η) capital eta\r
+dkGreekAlphabet.item["j"] := "{u+03b8}"  ; (θ) small theta\r
+dkGreekAlphabet.item["J"] := "{u+0398}"  ; (Θ) capital theta\r
+dkGreekAlphabet.item["i"] := "{u+03b9}"  ; (ι) small iota\r
+dkGreekAlphabet.item["I"] := "{u+0399}"  ; (Ι) capital iota\r
+dkGreekAlphabet.item["k"] := "{u+03ba}"  ; (κ) small kappa\r
+dkGreekAlphabet.item["K"] := "{u+039a}"  ; (Κ) capital kappa\r
+dkGreekAlphabet.item["l"] := "{u+03bb}"  ; (λ) small lambda\r
+dkGreekAlphabet.item["L"] := "{u+039b}"  ; (Λ) capital lambda\r
+dkGreekAlphabet.item["m"] := "{u+03bc}"  ; (μ) small mu\r
+dkGreekAlphabet.item["M"] := "{u+039c}"  ; (Μ) capital mu\r
+dkGreekAlphabet.item["n"] := "{u+03bd}"  ; (ν) small nu\r
+dkGreekAlphabet.item["N"] := "{u+039d}"  ; (Ν) capital nu\r
+dkGreekAlphabet.item["x"] := "{u+03be}"  ; (ξ) small xi\r
+dkGreekAlphabet.item["X"] := "{u+039e}"  ; (Ξ) capital xi\r
+dkGreekAlphabet.item["o"] := "{u+03bf}"  ; (ο) small omicron\r
+dkGreekAlphabet.item["O"] := "{u+039f}"  ; (Ο) capital omicron\r
+dkGreekAlphabet.item["p"] := "{u+03c0}"  ; (π) small pi\r
+dkGreekAlphabet.item["P"] := "{u+03a0}"  ; (Π) capital pi\r
+dkGreekAlphabet.item["r"] := "{u+03c1}"  ; (ρ) small rho\r
+dkGreekAlphabet.item["R"] := "{u+03a1}"  ; (Ρ) capital rho\r
+dkGreekAlphabet.item["s"] := "{u+03c3}"  ; (σ) small sigma\r
+dkGreekAlphabet.item["S"] := "{u+03a3}"  ; (Σ) capital sigma\r
+dkGreekAlphabet.item[","] := "{u+03c2}"  ; (ς) small sigma, in word-final position\r
+dkGreekAlphabet.item[chr(0x00df)] := "{u+03c2}"  ; (ß -> ς) small sigma, in word-final position\r
+dkGreekAlphabet.item["t"] := "{u+03c4}"  ; (τ) small tau\r
+dkGreekAlphabet.item["T"] := "{u+03a4}"  ; (Τ) capital tau\r
+dkGreekAlphabet.item["u"] := "{u+03c5}"  ; (υ) small upsilon\r
+dkGreekAlphabet.item["U"] := "{u+03a5}"  ; (Υ) capital upsilon\r
+dkGreekAlphabet.item["y"] := "{u+03c5}"  ; (υ) small upsilon\r
+dkGreekAlphabet.item["Y"] := "{u+03a5}"  ; (Υ) capital upsilon\r
+dkGreekAlphabet.item["f"] := "{u+03c6}"  ; (φ) small phi\r
+dkGreekAlphabet.item["F"] := "{u+03a6}"  ; (Φ) capital phi\r
+dkGreekAlphabet.item["c"] := "{u+03c7}"  ; (χ) small chi\r
+dkGreekAlphabet.item["C"] := "{u+03a7}"  ; (Χ) capital chi\r
+dkGreekAlphabet.item["w"] := "{u+03c8}"  ; (ψ) small psi\r
+dkGreekAlphabet.item["W"] := "{u+03a8}"  ; (Ψ) capital psi\r
+dkGreekAlphabet.item["q"] := "{u+03c9}"  ; (ω) small omega\r
+dkGreekAlphabet.item["Q"] := "{u+03a9}"  ; (Ω) capital omega\r
+dkGreekAlphabet.item["!"] := "{u+00b9}"  ; (¹) superscript 1\r
+dkGreekAlphabet.item["@"] := "{u+00b2}"  ; (²) superscript 2\r
+dkGreekAlphabet.item["#"] := "{u+00b3}"  ; (³) superscript 3\r
+dkGreekAlphabet.item["$"] := "{u+2074}"  ; (⁴) superscript 4\r
+dkGreekAlphabet.item["%"] := "{u+2075}"  ; (⁵) superscript 5\r
+dkGreekAlphabet.item["^"] := "{u+2076}"  ; (⁶) superscript 6\r
+dkGreekAlphabet.item["&"] := "{u+2077}"  ; (⁷) superscript 7\r
+dkGreekAlphabet.item["*"] := "{u+2078}"  ; (⁸) superscript 8\r
+dkGreekAlphabet.item["("] := "{u+2079}"  ; (⁹) superscript 9\r
+dkGreekAlphabet.item[")"] := "{u+2070}"  ; (⁰) superscript 0\r
+dkGreekAlphabet.item["-"] := "{u+207b}"  ; (⁻) superscript -\r
+dkGreekAlphabet.item["="] := "{u+207c}"  ; (⁼) superscript =\r
+dkGreekAlphabet.item["+"] := "{u+207a}"  ; (⁺) superscript +\r
+dkGreekAlphabet.item["["] := "{u+207d}"  ; (⁽) superscript (\r
+dkGreekAlphabet.item["]"] := "{u+207e}"  ; (⁾) superscript )\r
+dkGreekAlphabet.item["1"] := "{u+2081}"  ; (₁) subscript 1\r
+dkGreekAlphabet.item["2"] := "{u+2082}"  ; (₂) subscript 2\r
+dkGreekAlphabet.item["3"] := "{u+2083}"  ; (₃) subscript 3\r
+dkGreekAlphabet.item["4"] := "{u+2084}"  ; (₄) subscript 4\r
+dkGreekAlphabet.item["5"] := "{u+2085}"  ; (₅) subscript 5\r
+dkGreekAlphabet.item["6"] := "{u+2086}"  ; (₆) subscript 6\r
+dkGreekAlphabet.item["7"] := "{u+2087}"  ; (₇) subscript 7\r
+dkGreekAlphabet.item["8"] := "{u+2088}"  ; (₈) subscript 8\r
+dkGreekAlphabet.item["9"] := "{u+2089}"  ; (₉) subscript 9\r
+dkGreekAlphabet.item["0"] := "{u+2080}"  ; (₀) subscript 0\r
+dkGreekAlphabet.item[";"] := "{u+208b}"  ; (₋) subscript -\r
+dkGreekAlphabet.item["'"] := "{u+208c}"  ; (₌) subscript =\r
+dkGreekAlphabet.item[chr(34)] := "{u+208a}" ; (₊) subscript +\r
+dkGreekAlphabet.item["{"] := "{u+208d}"  ; (₍) subscript (\r
+dkGreekAlphabet.item["}"] := "{u+208e}"  ; (₎) subscript )\r
+dkGreekAlphabet.item["."] := "{u+00b5}"  ; (µ) micro sign\r
+dkGreekAlphabet.item[" "] := "{u+03bc}"  ; (μ) small mu\r
+\r
+\r
+; Dead Key :  Math Symbols\r
+\r
+dkMathSymbols := ComObjCreate("Scripting.Dictionary")\r
+dkMathSymbols.item["a"] := "{u+2200}"  ; (∀) for all\r
+dkMathSymbols.item["A"] := "{u+2200}"  ; (∀) for all\r
+dkMathSymbols.item["b"] := "{u+2286}"  ; (⊆) subset of or equal to\r
+dkMathSymbols.item["B"] := "{u+2287}"  ; (⊇) superset of or equal to\r
+dkMathSymbols.item["c"] := "{u+221d}"  ; (∝) proportional to\r
+dkMathSymbols.item["C"] := "{u+2102}"  ; (ℂ) complex numbers\r
+dkMathSymbols.item["d"] := "{u+2206}"  ; (∆) increment operator\r
+dkMathSymbols.item["D"] := "{u+2207}"  ; (∇) nable/del operator\r
+dkMathSymbols.item["e"] := "{u+2203}"  ; (∃) there exists\r
+dkMathSymbols.item["E"] := "{u+2204}"  ; (∄) there does not exist\r
+dkMathSymbols.item["f"] := "{u+0192}"  ; (ƒ) f with hook\r
+dkMathSymbols.item["F"] := "{u+220e}"  ; (∎) end of proof\r
+dkMathSymbols.item["g"] := "{u+2282}"  ; (⊂) subset of\r
+dkMathSymbols.item["G"] := "{u+2284}"  ; (⊄) not a subset of\r
+dkMathSymbols.item["h"] := "{u+2283}"  ; (⊃) superset of\r
+dkMathSymbols.item["H"] := "{u+2285}"  ; (⊅) not a superset of\r
+dkMathSymbols.item["i"] := "{u+221e}"  ; (∞) infinity symbol\r
+dkMathSymbols.item["I"] := "{u+221e}"  ; (∞) infinity symbol\r
+dkMathSymbols.item["k"] := "{u+220b}"  ; (∋) contains as member\r
+dkMathSymbols.item["K"] := "{u+220c}"  ; (∌) does not contain as member\r
+dkMathSymbols.item["l"] := "{u+2225}"  ; (∥) parallel to\r
+dkMathSymbols.item["L"] := "{u+2226}"  ; (∦) not parallel to\r
+dkMathSymbols.item["m"] := "{u+2208}"  ; (∈) element of\r
+dkMathSymbols.item["M"] := "{u+2209}"  ; (∉) not an element of\r
+dkMathSymbols.item["n"] := "{u+207f}"  ; (ⁿ) superscript n\r
+dkMathSymbols.item["N"] := "{u+2115}"  ; (ℕ) natural numbers\r
+dkMathSymbols.item["o"] := "{u+2218}"  ; (∘) ring operator\r
+dkMathSymbols.item["O"] := "{u+2205}"  ; (∅) empty set\r
+dkMathSymbols.item["p"] := "{u+2202}"  ; (∂) partial differential\r
+dkMathSymbols.item["P"] := "{u+2119}"  ; (ℙ) prime numbers\r
+dkMathSymbols.item["q"] := "{u+211a}"  ; (ℚ) rational numbers\r
+dkMathSymbols.item["Q"] := "{u+211a}"  ; (ℚ) rational numbers\r
+dkMathSymbols.item["r"] := "{u+221a}"  ; (√) square root\r
+dkMathSymbols.item["R"] := "{u+211d}"  ; (ℝ) real numbers\r
+dkMathSymbols.item["s"] := "{u+2229}"  ; (∩) set intersection\r
+dkMathSymbols.item["S"] := "{u+222b}"  ; (∫) integral symbol\r
+dkMathSymbols.item["u"] := "{u+222a}"  ; (∪) set union\r
+dkMathSymbols.item["U"] := "{u+2216}"  ; (∖) set minus\r
+dkMathSymbols.item["w"] := "{u+2118}"  ; (℘) Weierstrass elliptic function\r
+dkMathSymbols.item["W"] := "{u+2118}"  ; (℘) Weierstrass elliptic function\r
+dkMathSymbols.item["z"] := "{u+21af}"  ; (↯) downwards zigzag arrow\r
+dkMathSymbols.item["Z"] := "{u+2124}"  ; (ℤ) whole numbers\r
+dkMathSymbols.item["!"] := "{u+2260}"  ; (≠) not equal to\r
+dkMathSymbols.item["1"] := "{u+2260}"  ; (≠) not equal to\r
+dkMathSymbols.item["@"] := "{u+221a}"  ; (√) square root\r
+dkMathSymbols.item["2"] := "{u+221a}"  ; (√) square root\r
+dkMathSymbols.item["#"] := "{u+221b}"  ; (∛) cube root\r
+dkMathSymbols.item["3"] := "{u+221b}"  ; (∛) cube root\r
+dkMathSymbols.item["$"] := "{u+221c}"  ; (∜) fourth root\r
+dkMathSymbols.item["4"] := "{u+221c}"  ; (∜) fourth root\r
+dkMathSymbols.item["%"] := "{u+2030}"  ; (‰) per mille sign\r
+dkMathSymbols.item["5"] := "{u+2031}"  ; (‱) per ten thousand sign\r
+dkMathSymbols.item["^"] := "{u+2220}"  ; (∠) angle symbol\r
+dkMathSymbols.item["6"] := "{u+2220}"  ; (∠) angle symbol\r
+dkMathSymbols.item["&"] := "{u+2227}"  ; (∧) logical and\r
+dkMathSymbols.item["7"] := "{u+2227}"  ; (∧) logical and\r
+dkMathSymbols.item["*"] := "{u+2297}"  ; (⊗) tensor product\r
+dkMathSymbols.item["8"] := "{u+2297}"  ; (⊗) tensor product\r
+dkMathSymbols.item["("] := "{u+221f}"  ; (∟) right angle\r
+dkMathSymbols.item["9"] := "{u+221f}"  ; (∟) right angle\r
+dkMathSymbols.item[")"] := "{u+2221}"  ; (∡) measured angle\r
+dkMathSymbols.item["0"] := "{u+2221}"  ; (∡) measured angle\r
+dkMathSymbols.item["``"] := "{u+2248}" ; (≈) almost equal to\r
+dkMathSymbols.item["~"] := "{u+2248}"  ; (≈) almost equal to\r
+dkMathSymbols.item[","] := "{u+2264}"  ; (≤) less-than or equal to\r
+dkMathSymbols.item["<"] := "{u+2264}"  ; (≤) less-than or equal to\r
+dkMathSymbols.item["."] := "{u+2265}"  ; (≥) greater-than or equal to\r
+dkMathSymbols.item[">"] := "{u+2265}"  ; (≥) greater-than or equal to\r
+dkMathSymbols.item["-"] := "{u+00b1}"  ; (±) plus-minus sign\r
+dkMathSymbols.item["_"] := "{u+2296}"  ; (⊖) circled minus\r
+dkMathSymbols.item["="] := "{u+225d}"  ; (≝) equal to by definition\r
+dkMathSymbols.item["+"] := "{u+2295}"  ; (⊕) exclusive or\r
+dkMathSymbols.item[chr(0x00d7)] := "{u+2261}"  ; (× -> ≡) identical to\r
+dkMathSymbols.item[chr(0x00f7)] := "{u+2262}"  ; (÷ -> ≢) not identical to\r
+dkMathSymbols.item[";"] := "{u+2235}"  ; (∵) because sign\r
+dkMathSymbols.item[":"] := "{u+2234}"  ; (∴) therefore sign\r
+dkMathSymbols.item["'"] := "{u+2032}"  ; (′) prime\r
+dkMathSymbols.item[chr(34)] := "{u+2033}" ; (″) double prime\r
+dkMathSymbols.item["/"] := "{u+2034}"  ; (‴) triple prime\r
+dkMathSymbols.item["?"] := "{u+2057}"  ; (⁗) quadruple prime\r
+dkMathSymbols.item["\"] := "{u+2228}"  ; (∨) logical or\r
+dkMathSymbols.item["|"] := "{u+2228}"  ; (∨) logical or\r
+dkMathSymbols.item[" "] := "{u+221a}"  ; (√) square root\r
+\r
+\r
+; Configuration :  Switch positions of symbols and digits\r
+\r
+$1::Send {!}  ; exclamation mark\r
+$+1::Send 1   ; digit 1\r
+\r
+$2::Send @    ; at sign\r
+$+2::Send 2   ; digit 2\r
+\r
+$3::Send {#}  ; number sign\r
+$+3::Send 3   ; digit 3\r
+\r
+$4::Send $    ; dollar sign\r
+$+4::Send 4   ; digit 4\r
+\r
+$5::Send `%   ; percent sign\r
+$+5::Send 5   ; digit 5\r
+\r
+$6::Send {^}  ; circumflex accent\r
+$+6::Send 6   ; digit 6\r
+\r
+$7::Send &    ; ampersand\r
+$+7::Send 7   ; digit 7\r
+\r
+$8::Send *    ; asterisk\r
+$+8::Send 8   ; digit 8\r
+\r
+$9::Send (    ; left parenthesis\r
+$+9::Send 9   ; digit 9\r
+\r
+$0::Send )    ; right parenthesis\r
+$+0::Send 0   ; digit 0\r
+\r
+\r
+; Configuration :  Right Alt on US QWERTY\r
+\r
+>!a::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00c4}  ; (Ä) A with diaeresis\r
+  else\r
+    Send {u+00e4}  ; (ä) a with diaeresis\r
+return\r
+>!+a::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00e4}  ; (ä) a with diaeresis\r
+  else\r
+    Send {u+00c4}  ; (Ä) A with diaeresis\r
+return\r
+\r
+>!z::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00c0}  ; (À) A with grave\r
+  else\r
+    Send {u+00e0}  ; (à) a with grave\r
+return\r
+>!+z::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00e0}  ; (à) a with grave\r
+  else\r
+    Send {u+00c0}  ; (À) A with grave\r
+return\r
+\r
+>!x::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00c1}  ; (Á) A with acute\r
+  else\r
+    Send {u+00e1}  ; (á) a with acute\r
+return\r
+>!+x::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00e1}  ; (á) a with acute\r
+  else\r
+    Send {u+00c1}  ; (Á) A with acute\r
+return\r
+\r
+>!q::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00c6}  ; (Æ) letter AE\r
+  else\r
+    Send {u+00e6}  ; (æ) letter ae\r
+return\r
+>!+q::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00e6}  ; (æ) letter ae\r
+  else\r
+    Send {u+00c6}  ; (Æ) letter AE\r
+return\r
+\r
+>!w::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00c5}  ; (Å) A with ring above\r
+  else\r
+    Send {u+00e5}  ; (å) a with ring above\r
+return\r
+>!+w::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00e5}  ; (å) a with ring above\r
+  else\r
+    Send {u+00c5}  ; (Å) A with ring above\r
+return\r
+\r
+>!c::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00c7}  ; (Ç) C with cedilla\r
+  else\r
+    Send {u+00e7}  ; (ç) c with cedilla\r
+return\r
+>!+c::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00e7}  ; (ç) c with cedilla\r
+  else\r
+    Send {u+00c7}  ; (Ç) C with cedilla\r
+return\r
+\r
+>!d::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00d0}  ; (Ð) capital letter eth\r
+  else\r
+    Send {u+00f0}  ; (ð) small letter eth\r
+return\r
+>!+d::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00f0}  ; (ð) small letter eth\r
+  else\r
+    Send {u+00d0}  ; (Ð) capital letter eth\r
+return\r
+\r
+>!e::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00cb}  ; (Ë) E with diaeresis\r
+  else\r
+    Send {u+00eb}  ; (ë) e with diaeresis\r
+return\r
+>!+e::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00eb}  ; (ë) e with diaeresis\r
+  else\r
+    Send {u+00cb}  ; (Ë) E with diaeresis\r
+return\r
+\r
+>!f::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00c8}  ; (È) E with grave\r
+  else\r
+    Send {u+00e8}  ; (è) e with grave\r
+return\r
+>!+f::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00e8}  ; (è) e with grave\r
+  else\r
+    Send {u+00c8}  ; (È) E with grave\r
+return\r
+\r
+>!g::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00c9}  ; (É) E with acute\r
+  else\r
+    Send {u+00e9}  ; (é) e with acute\r
+return\r
+>!+g::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00e9}  ; (é) e with acute\r
+  else\r
+    Send {u+00c9}  ; (É) E with acute\r
+return\r
+\r
+>!i::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00cf}  ; (Ï) I with diaeresis\r
+  else\r
+    Send {u+00ef}  ; (ï) i with diaeresis\r
+return\r
+>!+i::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00ef}  ; (ï) i with diaeresis\r
+  else\r
+    Send {u+00cf}  ; (Ï) I with diaeresis\r
+return\r
+\r
+>!v::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00cc}  ; (Ì) I with grave\r
+  else\r
+    Send {u+00ec}  ; (ì) i with grave\r
+return\r
+>!+v::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00ec}  ; (ì) i with grave\r
+  else\r
+    Send {u+00cc}  ; (Ì) I with grave\r
+return\r
+\r
+>!b::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00cd}  ; (Í) I with acute\r
+  else\r
+    Send {u+00ed}  ; (í) i with acute\r
+return\r
+>!+b::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00ed}  ; (í) i with acute\r
+  else\r
+    Send {u+00cd}  ; (Í) I with acute\r
+return\r
+\r
+>!o::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00d6}  ; (Ö) O with diaeresis\r
+  else\r
+    Send {u+00f6}  ; (ö) o with diaeresis\r
+return\r
+>!+o::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00f6}  ; (ö) o with diaeresis\r
+  else\r
+    Send {u+00d6}  ; (Ö) O with diaeresis\r
+return\r
+\r
+>!,::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00d2}  ; (Ò) O with grave\r
+  else\r
+    Send {u+00f2}  ; (ò) o with grave\r
+return\r
+>!<::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00f2}  ; (ò) o with grave\r
+  else\r
+    Send {u+00d2}  ; (Ò) O with grave\r
+return\r
+\r
+>!.::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00d3}  ; (Ó) O with acute\r
+  else\r
+    Send {u+00f3}  ; (ó) o with acute\r
+return\r
+>!>::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00f3}  ; (ó) o with acute\r
+  else\r
+    Send {u+00d3}  ; (Ó) O with acute\r
+return\r
+\r
+>!k::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+0152}  ; (Œ) ligature OE\r
+  else\r
+    Send {u+0153}  ; (œ) ligature oe\r
+return\r
+>!+k::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+0153}  ; (œ) ligature oe\r
+  else\r
+    Send {u+0152}  ; (Œ) ligature OE\r
+return\r
+\r
+>!l::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00d8}  ; (Ø) O with stroke\r
+  else\r
+    Send {u+00f8}  ; (ø) o with stroke\r
+return\r
+>!+l::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00f8}  ; (ø) o with stroke\r
+  else\r
+    Send {u+00d8}  ; (Ø) O with stroke\r
+return\r
+\r
+>!n::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00d1}  ; (Ñ) N with tilde\r
+  else\r
+    Send {u+00f1}  ; (ñ) n with tilde\r
+return\r
+>!+n::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00f1}  ; (ñ) n with tilde\r
+  else\r
+    Send {u+00d1}  ; (Ñ) N with tilde\r
+return\r
+\r
+>!t::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00de}  ; (Þ) capital letter thorn\r
+  else\r
+    Send {u+00fe}  ; (þ) small letter thorn\r
+return\r
+>!+t::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00fe}  ; (þ) small letter thorn\r
+  else\r
+    Send {u+00de}  ; (Þ) capital letter thorn\r
+return\r
+\r
+>!u::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00dc}  ; (Ü) U with diaeresis\r
+  else\r
+    Send {u+00fc}  ; (ü) u with diaeresis\r
+return\r
+>!+u::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00fc}  ; (ü) u with diaeresis\r
+  else\r
+    Send {u+00dc}  ; (Ü) U with diaeresis\r
+return\r
+\r
+>!h::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00d9}  ; (Ù) U with grave\r
+  else\r
+    Send {u+00f9}  ; (ù) u with grave\r
+return\r
+>!+h::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00f9}  ; (ù) u with grave\r
+  else\r
+    Send {u+00d9}  ; (Ù) U with grave\r
+return\r
+\r
+>!j::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00da}  ; (Ú) U with acute\r
+  else\r
+    Send {u+00fa}  ; (ú) u with acute\r
+return\r
+>!+j::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00fa}  ; (ú) u with acute\r
+  else\r
+    Send {u+00da}  ; (Ú) U with acute\r
+return\r
+\r
+>!y::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+0178}  ; (Ÿ) Y with diaeresis\r
+  else\r
+    Send {u+00ff}  ; (ÿ) y with diaeresis\r
+return\r
+>!+y::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00ff}  ; (ÿ) y with diaeresis\r
+  else\r
+    Send {u+0178}  ; (Ÿ) Y with diaeresis\r
+return\r
+\r
+>!r::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00dd}  ; (Ý) Y with acute\r
+  else\r
+    Send {u+00fd}  ; (ý) y with acute\r
+return\r
+>!+r::\r
+  if GetKeyState("CapsLock", "T")\r
+    Send {u+00fd}  ; (ý) y with acute\r
+  else\r
+    Send {u+00dd}  ; (Ý) Y with acute\r
+return\r
+\r
+>!p::Send {u+2020}   ; (†) dagger\r
+>!+p::Send {u+2021}  ; (‡) double dagger\r
+\r
+>!s::Send {u+00df}   ; (ß) small sharp s (Eszett)\r
+>!+s::Send {u+00a7}  ; (§) section sign\r
+\r
+>!/::Send {u+00bf}   ; (¿) inverted question mark\r
+>!?::Send {u+2026}   ; (…) horizontal ellipsis\r
+\r
+>!1::Send {u+00a1}   ; (¡) inverted exclamation mark\r
+>!+1::Send {u+00b9}  ; (¹) superscript 1\r
+\r
+>!2::Send {u+00a9}   ; (©) copyright sign\r
+>!+2::Send {u+00b2}  ; (²) superscript 2\r
+\r
+>!3::Send {u+00b1}   ; (±) plus-minus sign\r
+>!+3::Send {u+00b3}  ; (³) superscript 3\r
+\r
+>!4::Send {u+00a3}   ; (£) pound sign\r
+>!+4::Send {u+00a5}  ; (¥) yen sign\r
+\r
+>!5::Send {u+20ac}   ; (€) euro sign\r
+>!+5::Send {u+00a2}  ; (¢) cent sign (dollar)\r
+\r
+>!8::Send {u+201e}   ; („) double low-9 quotation mark\r
+>!+8::Send {u+00b6}  ; (¶) pilcrow sign\r
+\r
+>!9::Send {u+201c}   ; (“) left double quotation mark\r
+>!+9::Send {u+2018}  ; (‘) left single quotation mark\r
+\r
+>!0::Send {u+201d}   ; (”) right double quotation mark\r
+>!+0::Send {u+2019}  ; (’) right single quotation mark\r
+\r
+>!=::Send {u+00d7}   ; (×) multiplication sign\r
+>!+=::Send {u+00f7}  ; (÷) division sign\r
+\r
+>![::Send {u+00ab}   ; («) left-pointing double angle quotation mark\r
+>!{::Send {u+2039}   ; (‹) left-pointing single angle quotation mark\r
+\r
+>!]::Send {u+00bb}   ; (») right-pointing double angle quotation mark\r
+>!}::Send {u+203a}   ; (›) right-pointing single angle quotation mark\r
+\r
+>!;::Send {u+00b0}   ; (°) degree sign\r
+>!+;::Send {u+00b7}  ; (·) middle dot\r
+\r
+>!6::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkCircumflex.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+>!+6::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkCaron.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+\r
+>!7::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkRingDotAbove.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+>!+7::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkMacronStroke.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+\r
+>!-::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkCedillaOgonek.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+>!_::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkBreveSpecial.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+\r
+>!'::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkAcuteAccent.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+>!"::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkDiaeresis.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+\r
+>!`::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkGraveAccent.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+>!~::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkTilde.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+\r
+>!\::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkNotSign.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+>!|::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkBrokenBar.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+\r
+>!m::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkGreekAlphabet.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+>!+m::\r
+  Input, key, L1, {bs}{del}{esc}{home}{end}\r
+  Send % dkMathSymbols.item[key]\r
+  key := ""  ; avoids leaking content via debug properties\r
+return\r
+\r
+>!space::Send {u+00a0}   ; non-breaking space\r
+>!+space::Send {u+00a0}  ; non-breaking space\r